Intelligent telecommunications networks have engendered a number of new and interesting services for telecommunications subscribers. Call routing, calling card checks, call screening, and identifying callers are some of the services which may now be supported by intelligent networks. The intelligent networks also now permit real time creation and modification of customized features and services desired by particular subscribers. An example is Personal Number Calling, in which a person may request that she or he be reached at one location for particular times of the day and at another location for other times, all using the same telephone number, but subject to change immediately.
Intelligent networks are well suited to address these new additional demands flexibly, efficiently and reliably. Information relating to the status of services and features desired by subscribers may be maintained in intelligent Network Elements ("NEs") such as (but not limited to) conventional Advanced Intelligent Network ("AIN") Service Control Points ("SCPs"), Service Nodes ("SNs"), other Intelligent Peripherals ("IPs"), or other intelligent Network Elements which are available for query by central offices, switches and similar elements of the telecommunications switching network. Such subscribers may be those who subscribe to telecommunications, cable or television programming, multimedia or other services which may be provided on any information infrastructure, regardless of nature or bandwidth.
According to certain BellSouth Telecommunications intelligent network architecture, as a conventional (but nonlimiting) example, data corresponding to the status of services and features for particular subscribers in a Personal Number Calling context may be stored in Service Control Points. Appropriate logic, located in the Service Control Point or in a Service Node, is invoked by a call from a particular subscriber who wishes to make a change to her or his subscriber changeable data. The logic verifies the data from the subscriber and updates the subscriber's data. If the logic resides in a Service Node, it sends, via an X.25 link, an update message to the appropriate Service Control Point that contains the subscriber's data.
For a number of reasons, it is desirable to maintain concurrent, redundant data corresponding to the same subscriber but located on different machines or even at different geographical sites. In BellSouth Telecommunications intelligent networks, for instance, there are at least two databases which store data for a particular subscriber. Each database resides in a different Service Control Point, and the Service Control Points are sometimes located geographically remotely from each other. (Each of the Service Control Points also preferably contains a parallel set of data mirrored locally/internally in conventional fashion on tandem devices.) The redundancy offered by these mated Service Control Point helps cover the unavoidable system failures and maintenance periods, but it also allows load sharing among Service Control Points as well as the capacity to designate active or standby Service Control Points in an effort to distribute the load across the network.
The conspicuous and primary disadvantage of such redundant databases is that they will inevitably fail to contain the same data at some point. For instance, during subscriber changeable data updating efforts, a particular relevant Service Control Point may be out of service or communications links may be lost. Data concurrence must obviously be restored quickly in such case, and in any event before the Service Control Point resumes call processing.
Even if platform or communications failures are discounted or ignored, reconciliation between the databases must occur in real time and reliably, since calls may be processed by either Service Control Point at any time depending on management and control of the network. Subscriber services such as Personal Number Calling only exacerbate this requirement, since, for example, a subscriber who is entering a change may be walking out the door and expecting calls in her car in the next few minutes.
Other conventional techniques for updating parallel databases such as those found in remotely located Service Control Points include communicating the update information simultaneously to the databases. Such techniques typically address the data reconciliation or synchronization issue with "audit" software in every application that corresponds to each database. This audit software seeks to synchronize data between the mated databases by, among other things, recording information relating to any data for which an update failure occurs by reason of failure to synchronize with other applications, link failures, out-of-service conditions, or otherwise. If the software is unable to synchronize the data, it sets a "data audit" timer and attempts to synchronize again when the timer expires. Data changes can be missed during such audits, however, and they in any event require appreciable effort and coordination.
These conventional approaches to data concurrence fail to resolve the multiple needs associated with updating and reconciling redundant databases in mated Network Elements and applications reliably, efficiently, quickly and with a minimum of management and coordination.